package com.subfg.payment.util.ali.mode;

import com.alipay.api.AlipayClient;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import com.alipay.api.response.AlipayTradeRefundResponse;
import com.subfg.common.entity.call.request.RequestPayModel;
import com.subfg.common.entity.call.request.RequestTransferModel;
import com.subfg.common.entity.call.request.refund.ApplyRefundModel;
import com.subfg.common.entity.call.result.ResultPayModel;
import com.subfg.common.entity.config.pay.ConfigPayAliModel;
import com.subfg.common.entity.excpetion.BusinessExceptionModel;

public interface AliPayModeServer {
    // 生成App支付宝的支付信息(数据)
    ResultPayModel createAppAliPayInfo(RequestPayModel payInfo, ConfigPayAliModel configPayAliModel, AlipayClient client) throws BusinessExceptionModel;
    // 生成支付宝WEB端支付信息(数据)
    ResultPayModel createWebPagePayInfo(RequestPayModel payInfo,  ConfigPayAliModel configPayAliModel, AlipayClient client) throws BusinessExceptionModel;
    // 生成支付宝当面付 二维码支付信息(数据)
    ResultPayModel createQrcodePayInfo(RequestPayModel payInfo, ConfigPayAliModel configPayAliModel, AlipayClient client) throws BusinessExceptionModel;
    // 退款
    AlipayTradeRefundResponse alipayRefund(ApplyRefundModel.RefundOrderModel refundOrderModel, ConfigPayAliModel configPayAli, AlipayClient client) throws BusinessExceptionModel;
    // 转账
    AlipayFundTransUniTransferResponse aliTransfer(RequestTransferModel transferModel, ConfigPayAliModel configPayAliModel, AlipayClient client)throws BusinessExceptionModel;
}
